package cj.web.utils;

/**
 * JAVA 返回随机数，并根据概率、比率
 * 
 * @author zhanglei
 * 
 */
public class GiftRandom {
	/**
	 * Math.random()产生一个double型的随机数，判断一下 例如0出现的概率为%50，则介于0到0.50中间的返回0
	 * 
	 * @return int
	 * 
	 */
	public static int PercentageRandom(double rate0,double rate1
//			,double rate2,double rate3,double rate4,double rate5,double rate6
			) {
		double randomNumber;
		randomNumber = Math.random();
		if (randomNumber >= 0 && randomNumber <= rate0) {
			return 1;
		} else if (randomNumber >= rate0 / 100 && randomNumber <= rate0 + rate1) {
			return 2;
		} 
//		else if (randomNumber >= rate0 + rate1
//				&& randomNumber <= rate0 + rate1 + rate2) {
//			return 3;
//		}else if (randomNumber >= rate0 + rate1 + rate2
//				&& randomNumber <= rate0 + rate1 + rate2 + rate3) {
//			return 4;
//		} else if (randomNumber >= rate0 + rate1 + rate2 + rate3
//				&& randomNumber <= rate0 + rate1 + rate2 + rate3 + rate4) {
//			return 5;
//		} else if (randomNumber >= rate0 + rate1 + rate2 + rate3 + rate4
//				&& randomNumber <= rate0 + rate1 + rate2 + rate3 + rate4
//						+ rate5) {
//			return 6;
//		} else if (randomNumber >= rate0 + rate1 + rate2 + rate3 + rate4 + rate5
//				&& randomNumber <= rate0 + rate1 + rate2 + rate3 + rate4
//						+ rate5 + rate6) {
//			return 7;
//		} 
		return -1;
	}

	/**
	 * 测试主程序
	 * 
	 * @param agrs
	 */
	public static void main(String[] agrs) {
		int i = 0;
		GiftRandom a = new GiftRandom();
		
		/**
		 * 0出现的概率为%50
		 */
		double rate0 = 0.00;
		/**
		 * 1出现的概率为%20
		 */
		double rate1 = 0.00;
		/**
		 * 2出现的概率为%15
		 */
		double rate2 = 0.00;
		/**
		 * 3出现的概率为%10
		 */
		double rate3 = 0.00;
		/**
		 * 4出现的概率为%4
		 */
		double rate4 = 0.00;
		/**
		 * 5出现的概率为%1
		 */
		double rate5 = 0.00;
		/**
		 * 6出现的概率为%1
		 */
		double rate6 = 0.00;
		
		for (i = 0; i <= 100; i++)// 打印100个测试概率的准确性
		{
//			System.out.println(a.PercentageRandom(rate0,rate1,rate2,rate3,rate4,rate5,rate6));
		}
	}
}